<template>
    <div>
        <h4>- 二进制和八进制数值的新的写法，分别用前缀0b（或0B）和0o（或0O）表示 可使用 Number() 转成十进制</h4>
        二进制 0b<input type="text" v-model="binary"> 转成十进制：<span class="green bold">{{Number('0b' + (binary == '' ? 0 : binary))}}</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        八进制 0o<input type="text" v-model="octal"> 转成十进制：<span class="green bold">{{Number('0o' + (octal == '' ? 0 : octal))}}</span>
        <h4>- Number.isFinite(), Number.isNaN()</h4>
        <p>它们与传统的全局方法isFinite()和isNaN()的区别在于，传统方法先调用Number()将非数值的值转为数值，再进行判断，而这两个新方法只对数值有效，Number.isFinite()对于非数值一律返回false, Number.isNaN()只有对于NaN才返回true，非NaN一律返回false。</p>
        <h4>- Number.parseInt(), Number.parseFloat() 与 全局方法parseInt()和parseFloat() 完全一致</h4>
        <h4>- Number.isInteger() 判断一个数值是否为整数 注意：25 和 25.0 被视为同一个值</h4>
        <p>如果参数不是数值，Number.isInteger返回false；如果对数据精度的要求较高，不建议使用Number.isInteger() 可能误判</p>
        <h4>- Number.EPSILON  最小精度的常量 为 Math.pow(2, -52)  2 的 -52 次方</h4>
        <p>误差如果小于这个值，就可以认为已经没有意义了，即不存在误差了</p>
        <h4>- Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER 和 Number.isSafeInteger()</h4>
        <code>Number.MAX_SAFE_INTEGER === Math.pow(2, 53) - 1 //true</code>
        <h4>- Math 对象的扩展 新增 17 个都是 Math 的静态方法</h4>
        <code>Math.trunc() 靠0取整；Math.sign() 检测正负零；</code>
        <h4>- 指数运算符 (**) 新的赋值运算符（**=）</h4>
        <code>2 ** 3 ** 2 // 相当于 2 ** (3 ** 2) 是从右边开始计算的！！</code>
    </div>
</template>

<script>
export default {
    data() {
        return {
            binary: '',
            octal: ''
        }
    },
}
</script>

<style scoped>
@import url("../css/common.css");
</style>